IICS(CAI)でAWS SNS接続を設定する
はじめに
データアナリティクス事業本部のkobayashiです。
Informatica Intelligent Cloud Services(以降、IICS)はオンプレミスおよびクラウド環境に置かれているデータサービスとアプリケーションサービスを統合するiPaaS(integration Platform as a Service)製品です。
IICSの機能の一つであるInformatica Cloud Application Integration(以降、CAI)ではAPIをGUIの操作で簡単に構築することができます。
CAIではアプリケーション接続を作成することでプロセス内のサービスステップから作成した様々なサービスを呼び出すことができます。
前回はJDBCコネクションの作成を行いましたので今回はAWS SNSコネクションを作成しプロセス内で使ってみたいと思います。
- JDBCコネクション(第1回)
- AWS SNSコネクション(第2回)
- AWS SQSコネクション(第3回)
AWS SNSコネクション
AWS SNSコネクションを作成するとSNSトピックの作成やメッセージのパブリッシュなどのAWS SNSに関する一連の操作が行えるようになります。今回行うのは以前作成した「Hello Worldを返すAPI」のプロセス内にSNSサービスステップを追加して、リクエストされた値をメッセージとして送信する様に改良します。
そのため事前準備として「SNSトピックの作成」とそれに付随する「サブスクリプションへのエンドポイントの追加」は行っているものとして進めます。
またSNSコネクションはSecureAgentが必須なため作成するAPIもSecureAgent上で動かします。
SNSコネクションの設定
手順1) サイドメニューから新規
を選択するとモーダルが表示されるのでその中からアプリケーション接続
を選択し、作成
を押下する。
手順2) 接続の詳細の設定を行う。
- 名前 : 適当な名前の入力
- タイプ :
Amazon SNS
を選択 - 実行 : 事前準備したSecure Agentを選択
- SNS Endpoint : SNSのEndpointを入力
https://sns.{リージョン}.amazonaws.com/
の形式で入力します。リージョンはSNSトピックと合わせます。
- Access Key : AWS SNSのサービスを扱えるロールを持ったユーザーのAccess Keyを入力
- Secret Key : 上記のユーザーのSecret Keyを入力
手順3)右上のメニューからパブリッシュ
を押下してアプリケーション接続をパブリッシュする。
これでSNSコネクションの作成は終わりです。次にこのステップをプロセス内で使ってみます。
プロセスへSNSコネクションのサービスステップの追加
プロセスは以前作成した「Hello Worldを返すAPI 」の中のオウム返しをするプロセス「p_hello_world_2」を使います。これはリクエストで送られた値をそのままレスポンスで返すプロセスでした。
このプロセス内にSNSサービスステップを追加してリクエストで送られた値をSNSトピックにメッセージとして送るようにしたいと思います。
手順1)以前作成意したp_hello_world_2
プロセスを開き、サービス
ステップを終了
ステップの前に配置する。
手順2)サービスのタブを選択してアクションの設定を行う。
サービスタイプ
:接続
を選択接続
: 先に設定したsns-test
を選択アクション
:Publish Message
を選択
手順3)入力フィールドタブを開き、メッセージをパブリッシュする設定を行う。
名前 | 値 | 内容 |
---|---|---|
Topic ARN | コンテンツ | メッセージをパブリッシュしたいAWS SNSトピックARN |
Publish Message | 計算式 | fn:concat ("Input: ", $input.Input , " is sent." ,fn:current-dateTime()) |
これでSNSサービスステップの追加は終わりなのですが、先に説明した通りAWS SNSコネクションはSecureAgent上でしか動かせません。したがってこのプロセスもSecureAgent上で実行しなくてはいけないのでその設定を行います。
プロセスをSecureAgent上で実行する設定
手順1)開始
ステップを選択し、開始
タブを押下する。実行
で事前準備したSecure Agentを選択する。
手順2)保存
を押下してプロセスを保存し、右上のメニューからパブリッシュ
を実行する。
手順3)同じ右上のメニューからプロパティの詳細
を押下し、サービスURL
を確認する。
以前プロセスを作成した際には実行環境がIICSのクラウドサーバーを選択したためサービスURL
もIICSのアドレスになっていましたが今回はSecureAgentを実行環境に選択したためアドレスとポートが変わっています。そのためSwaggerファイルの表示やリクエストの送信先を変更する必要があります。また表示されているサービスURL
はSecureAgentからみたアドレスになっているのでこれをlocalhost
からSecureAgentにアクセスできるIP(URL)に読み替える必要があります。
APIエンドポイントにリクエストを送ってみる
curl -X POST "https://{SecureAgentのアドレス}:7443/process-engine/public/rt/p_hello_world_2" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"Input\": \"testtest\"}"
レスポンスとして以下が返ってきます。
{ "output": "testtest" }
AWS SNSトピックのサブスクリプションのエンドポイントにEMAIL
を設定してあるのでメールを確認してみると意図した内容でメールが送られてきているのが確認できます。
まとめ
AWS SNSアプリケーション接続を作成し、プロセス内でサービスステップで呼び出しSNSトピックにメーセージをパブリッシュしてみました。特に難しい設定も無く簡単に使えると思います。
次回はアプリケーション接続のAWS SQS編を試してみたいと思います。
最後まで読んで頂いてありがとうございました。